Recent advances in semiconductor memory devices, including consumer-oriented data storage devices such as SSD (Solid State Drive), etc. that use nonvolatile semiconductor memory, have highlighted the need for error detection and correction, where the error may be caused by a cosmic ray and the like.
Error checking and correction (ECC) has conventionally been used in NAND flash memory chips. However, with ECC methods, a path from input of data from a host to the generation of the ECC code is not protected. Hence when errors occur as data is transmitted through the unprotected section, they are not detected and the data storage device ends up storing bad data with no error indication.